#include <cstdio>

typedef long long ll;
const double eps = 1e-3;
const int N = 1e5 + 5;

int n, m, h[N];

inline bool check(double mid) {
  int cnt = 1;
  double lastpos = h[1] + mid;
  for (int i = 2; i <= n; ++i) {
    if (h[i] - lastpos > mid) ++cnt, lastpos = h[i] + mid;
    if (cnt > m) return false;
  }
  return true;
}

int main() {
#ifndef ONLINE_JUDGE
#ifdef LOCAL
  freopen("testdata.in", "r", stdin);
  freopen("testdata.out", "w", stdout);
#else
  freopen("AP.in", "r", stdin);
  freopen("AP.out", "w", stdout);
#endif
#endif

  scanf("%d%d", &m, &n);
  for (int i = 1; i <= n; ++i) scanf("%d", &h[i]);
  double l = 0, r = 1e8, mid;
  while (r - l > eps) {
    mid = (l + r) / 2;
    if (check(mid)) {
      r = mid;
    } else
      l = mid;
  }
	printf("%.1lf", l);
  return 0;
}